package com.itheima.edu.info.manager.service;

import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;

/**
 * 处理一些逻辑代码
 * 判断索引在数组中的位置
 */
public class StudentService {
   private StudentDao studentDao= new StudentDao();
    public boolean addStudent(Student stu) {
        return studentDao.addStudent(stu);

    }
//业务逻辑判断id是否存在
    public boolean isExists(String id) {
       // StudentDao studentDao= new StudentDao();
        //调用studentDao层的findAllStudent方法来获取数组
         Student[]stus=studentDao.findAllStudent();
         //假设id在数组中不存在
        boolean exists=false;
        //遍历数组,获取每一个学生对象,准备进行判断
        for (int i = 0; i < stus.length; i++) {
            Student student = stus[i];
            //数组总有可能有null元素null调方法有可能引发空指针异常
            //拿到的student对象是不是null并且对象获取出来的学号和方法传进来的学号进行比较如果相同
            //证明接收到的学号在数组中有
            if (student!=null&&student.getId().equals(id)){
               exists=true;
               break;
        }
    }
        return exists;
    }

    public Student[] findAllStudent() {
        Student[]allStudent=studentDao.findAllStudent();
        //判断数组中是否有学生信息(有:返回地址 没有:返回null)
        //思路: 数组中只要有一个不是null的元素,那么就代表有学生信息
        boolean flag=false;
        for (int i = 0; i < allStudent.length; i++) {
            Student stu = allStudent[i];
            if (stu!=null){
                flag=true;
                break;
            }
        }
        if (flag){
            return allStudent;
        }else {
            return null;
        }
    }

    public void deleteStudentById(String deId) {
        studentDao.deleteStudentById(deId);
    }
//修改
    public void updateStudent(String updateId, Student newStu) {
      studentDao.updateStudent(updateId,newStu);
    }
}
